Hardware speed selection behind a disk array controller

ABSTRACT

A system has a plurality of enclosures. Each enclosure has two enclosure services modules. Each enclosure services module has an IN port and an EXPANSION port. Each enclosure services module is able to determine the data rate of incoming data and check the validity of this data. If the data rate is other than what the enclosure services module is set for, the data rate of the enclosure services module is changed to that of the incoming data. In the system, there are a disk array controller having a first channel and a second channel. The first channel is formed in sequence from a disk array controller to a first enclosure services module of a first enclosure and between first enclosure services modules of successive enclosures to a last enclosure. The second channel is formed in reverse sequence from the disk array controller to the second enclosure services module of the last enclosure and between second enclosure services modules of successive enclosures to the first enclosure.

FIELD OF THE INVENTION

[0001] The present invention generally relates to the field of datacommunications storage, and particularly to a method and apparatus forhardware speed selection behind a disk array controller for disk driveenclosures which use Fibre Channel Arbitrated Loop (FC-AL) interfaces.

BACKGROUND OF THE INVENTION

[0002] Fibre Channel (FC) is a serial data communication networkarchitecture and protocol for interconnecting computers and peripheraldevices. Fibre Channel supports several protocols, including the SmallComputer System Interface (SCSI) protocol, an ANSI standard forcontrolling peripheral devices by one or more host computers. Thecomputer or peripheral devices are connected to the network throughfibre channel ports or other means. Because of the high bandwidth andconnection flexibility it offers, fibre channel is often used forconnecting peripheral devices within multi-disk drive enclosures, suchas redundant arrays of inexpensive disks (RAIDs), and for connectingmulti-disk drive enclosures with one or more host computers.

[0003] There are three topologies of Fibre Channel: Point-to-Point,Arbitrated Loop, and Fabric. Fibre Channel Arbitrated Loop refers to theANSI FC-AL document which specifies the Arbitrated Loop topology and isa shared architecture. Fibre Channel currently runs at 1 Gb or 2 Gb andmay, in the future, run at 4 Gb or 10 Gb. Arbitrated Loop has become themost dominant Fibre Channel topology, but it is also the most complex.It offers a cost-effective way of connecting up to 127 ports in a singlenetwork.

[0004] Multi-disk drive enclosures offer good economy, good storagecapacity, and redundancy that improve operational reliability; however,malfunctioning enclosures can, in certain cases, degrade or disablecommunications. In the prior art, enclosure services modules onlydetected that the drive was not communicating properly. Speed selectionwas based on a standard that was only defined to support point to point(limit 2 devices) configurations. It was also protocol intensive.

[0005] Therefore, it would be desirable to provide a method and systemfor changing disk drive operating speeds for a large group of drivesbehind a disk array controller without manual user intervention.

SUMMARY OF THE INVENTION

[0006] Accordingly, the present invention is directed to an apparatushaving disk drives which are physically organized into multipleenclosures and a method for detecting and changing the data rates of thedisk drives without manual user intervention.

[0007] In a first aspect of the present invention, a method is disclosedfor adjusting the speed of operation of a first channel or loop forcommunicating with disk drives in a multi ported system organized into aplurality of enclosures and having a first channel connected in sequencefrom a disk array controller to a first enclosure services module andsuccessively connected to successive first enclosure services modules toa last enclosure, including the step of detecting by a device associatedwith a corresponding first one of the plurality of enclosure servicesmodules the data rate of incoming data from the disk array controller.

[0008] In a second aspect of the present invention, a system isdisclosed for adjusting the speed of operation of a channel forcommunicating with disk drives in a multi ported system. The systemincludes a disk array controller having a first channel and a secondchannel and a plurality of first and second enclosure services modules.The first channel is formed in sequence from a disk array controller toa first enclosure services module of a first enclosure and between firstenclosure services modules of successive enclosures to a last enclosure.Each one of the plurality of enclosure services modules has a portbypass device which makes a data rate determination of incoming data.

[0009] In a third aspect, a system for adjusting the speed of operationof a channel for communicating with disk drives in a multi ported systemis disclosed. This system has a disk array controller having a firstchannel and a second channel and a plurality of enclosure servicesmodules. The first channel is formed in sequence from a disk arraycontroller to a first enclosure services module of a first enclosure andbetween first enclosure services modules of a successive enclosures tothe last enclosure. The second channel is formed in reverse sequencefrom the disk array controller to the second enclosure services moduleof the last enclosure and between second enclosure services modules ofsuccessive enclosures to the first enclosure. This system operatesaccording to the method having the steps of identifying the enclosure toreceive the incoming data and, for the proper enclosure, detecting by adevice the data rate of incoming data from the disk array controller,comparing the data rate of the incoming data with the current data ofthe enclosure services module, changing the data rate of the enclosureservices module to that of the data rate of the incoming data, andchecking the validity of the incoming data.

[0010] In a fourth aspect of the present invention, a system isdisclosed for passing a signal to a chain of electrically connecteddevices having two channels. This system has a controller device and aplurality of subservient devices, each subservient device being able todetermine the data rate of incoming data. The controller device isconnected both in an open chain manner to the subservient devices in aforward order and in a physically separate reverse order. The controllerdevice is a disk array controller and the subservient devices areenclosure services modules for disk drives.

[0011] It is to be understood that both the forgoing general descriptionand the following detailed description are exemplary and explanatoryonly and are not restrictive of the invention as claimed. Theaccompanying drawings, which are incorporated in and constitute a partof the specification, illustrate an embodiment of the invention andtogether with the general description, serve to explain the principlesof the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The numerous advantages of the present invention may be betterunderstood by those skilled in the art by reference to the accompanyingfigures in which:

[0013]FIG. 1 illustrates a system diagram; and

[0014]FIG. 2 illustrates a flowchart of the steps taken in detecting andchanging the disk rate of the enclosures.

DETAILED DESCRIPTION OF THE INVENTION

[0015] The present invention relates to a system and method to allowmultiple drive enclosures on a loop behind a disk array controller todynamically change loop speed; in particular, the system and methodrelate to changing between 1 and 2 Gbit data rates based on the desiredoperating speed transmitted from the array controller.

[0016] Reference will now be made in detail to the presently preferredembodiments of the invention, examples of which are illustrated in theaccompanying drawings.

[0017] Referring generally now to FIGS. 1 through 2, exemplaryembodiments of the present invention are shown.

[0018] Fibre Channel is a serial data communication network architectureand protocol for computers, workstations, and peripheral devices. InFibre Channel, data is transferred one bit at a time at extremely hightransfer rates. The Fibre Channel port includes serial transmitter andreceiver components coupled to a communications medium via a link thathas wires made of a signal transmitting material. It could be metalwire, optical fiber, or some other transmissive material.

[0019] A physical layout of an enclosure partitioned disk drive systemis shown in FIG. 1. Each enclosure has two enclosure services modulesand its drives constitute the enclosure. The disk array controller is atarget controller that uses the channel to connect to the peripheraldevice. Disk array controllers are commonly used in RAID arrays.

[0020] Behind the cable port on each of the drive enclosures, there is aport bypass device that monitors the data that is being received andthat decides whether to include the external connection into itsinternal loop or not based on data validity. The port bypass deviceprevents a down node from bringing down an entire loop in FC-AL. Theport bypass device is a switch that allows a node or ESM to be bypassedand electronically removed from the loop without interrupting traffic oradversely affecting data integrity on the loop. When all the enclosuresare operating at the same speed, the enclosures are “chained” togetherinto a large loop. If an enclosure is receiving data that is not at thesame rate that it is configured for, it will bypass the port since thisis seen as invalid receive data.

[0021] This invention defines a specific IN port and a specificEXPANSION (EXP) port. The port bypass device that is monitoring theinput to the IN port also indicates the currently detected data ratebeing received to logic inside the drive enclosure. If it does not matchthe current enclosure speed, the data detection logic in the bypassdevice is changed to the received data speed to check for data validityat the detected receive speed. If valid data is received at the new rateon the IN port of the enclosure, then the logic inside the enclosurewould reconfigure the devices in the enclosure to run at the new speedand unbypass the IN port. At this time, the enclosure would begintransmitting the new link speed from its EXP port and the next enclosureservices module in the chain would begin the process to change speeds.

[0022] The enclosures are connected sequentially such that the secondand subsequent enclosures in the chain only see the data that the firstenclosure recognizes as valid and passes through. The port bypassterminology is referenced to the enclosure, not the loop. This meansthat for the second enclosure to get data from the disk array, it mustpass through the first enclosure. Therefore, the first enclosure must beset to the same speed as the controller and the second enclosure or itcannot pass the data through. Each enclosure dynamically configuresitself to operate at the data rate that it is receiving on its IN portand begins transmitting data out of its EXP port at that rate. This datais seen at the IN port of the next enclosure causing it to match itsspeed. In this manner, the new speed that was originally transmitted bythe RAID controller cascades through the drive enclosures until all theenclosures are at the same speed and a complete loop including all theenclosures is re-established.

[0023] In the method of the present invention, if the array is alwaysconnected to an IN port on the drive enclosure, it is guaranteed to bein the “control position”, meaning that it is always the initiator ofthe speed change and the logic allows the change to cascade through theenclosure services modules.

[0024]FIG. 1 illustrates an embodiment of a system according to thepresent invention. The disk array controller 10 is connected by cable tothe IN port 40 of ESM Loop A 30 (first enclosure services module) ofenclosure 1 through which signals of the first channel pass through theEXP port 50 to the corresponding IN port 40 of enclosure 2. The EXP portof ESM Loop A of enclosure 2, in turn, is connected to the IN port ofESM Loop A of third enclosure 3. The connections are made in such amanner until all the enclosures are connected to each other to form thefirst channel.

[0025] The electrical connections are made, in reverse order, for thesecond channel. In this case, the disk array controller is connectedfirst to IN port 70 of ESM Loop B 60 of the last enclosure 4 which wasconnected to the first channel. Then, the IN port 70 of the next to thelast enclosure 3 is connected to the EXP port 80 of ESM Loop B 60 of thelast enclosure 4. The connection of the IN ports to EXP ports continuesfor successive enclosures.

[0026] This is done in reverse order so that if a problem arises in themiddle of the path of one loop (channel), a portion of the enclosuresmay be accessible through Loop A and the other portion from Loop B. Forinstance, if enclosure 3 in FIG. 1 were powered off, it would not beable to pass signals from the disk array to enclosure 4 on Loop A. Inthis case, the disk array would use Loop A to communicate withenclosures 1 and 2 and Loop B to communicate with enclosure 4.

[0027] A multi-speed algorithm relies on each enclosure's port bypassdevice to detect the speed of the incoming data. The port bypass devicecompares the detected data rate with the incoming data rate. Theenclosure services module of the enclosure is responsible for changingthe speeds of all of its drives when it determines the speed of theincoming data. Driving the speed control pins to the new speed valuedoes this. The drive is responsible for recognizing, on the fly, thatthe speed has changed.

[0028]FIG. 2 illustrates the steps which occur in processing data byeach enclosure services module of a channel. This algorithm works forjust a single channel from the disk array controller to the enclosureservices modules. For improved reliability, two channels are used in theexemplary embodiment. The second channel may be used as an alternatepath for fault tolerance or for load balancing of data transactions.

[0029]FIG. 2 illustrates the process steps in making a drive enclosurespeed change. The disk array controller 10 transmits signals at a firstdata rate to the first enclosure, either enclosure 1 or enclosure 4 ofFIG. 1, step 200. The choice of the first enclosure accessed dependsupon which channel is used. The ESM in the first enclosure detects therate of the incoming signal and reconfigures itself to operate at thesame rate, if necessary. If the incoming rate is different from thecurrent rate, it begins to transmit the new rate from its EXP port tothe IN port of the next enclosure. This causes the next enclosure tochange to the new rate by the same process until the last enclosure isreached and all the enclosures are at the same rate. Once all of theenclosures are at the same rate, data transfer may begin to any deviceon that loop.

[0030] Alternatively, the first ESM encountered in a channel maydetermine the data rate of the incoming data and transmit that data rateto the next ESM. Each ESM may evaluate the data rate of incoming data.

[0031] Although the present method has been described in terms oftransferring data to an enclosure, a similar process would be used intransferring the data from an enclosure. In one embodiment, the diskarray controller may send a data transfer command along with anenclosure identification command and other relevant identificationinformation to retrieve data from the disk drives. Currentimplementations require a switch to be set on each drive enclosure tochange the operating rate of the enclosure. This invention allows theloop rate to be altered without manual intervention at any of the driveenclosures which may be remotely located from the disk array controller.

[0032] The advantage of this approach is that the change is done in acontrolled manner in integrating a fibre channel solution in which thecontrol of some behavior is distributed across the components. Thepresent invention provides a method for setting up a loop or channel toallow data transfer to occur on it. Once the loop is initialized and setto the correct rate, all devices may communicate on the loop in bothdirections at that speed per the FC-AL standard.

[0033] It is believed that the hardware speed selection behind a diskarray controller of the present invention and many of its attendantadvantages will be understood by the forgoing description. It is alsobelieved that it will be apparent that various changes may be made inthe form, construction and arrangement of the components thereof withoutdeparting from the scope and spirit of the invention or withoutsacrificing all of its material advantages. The form herein beforedescribed being merely an explanatory embodiment thereof. It is theintention of the following claims to encompass and include such changes.

What is claimed is:
 1. A method for adjusting the speed of operation ofa first channel for communicating with disk drives in a multi portedsystem organized into a plurality of enclosures having a first channelformed in sequence from a disk array controller to a first enclosureservices module of a first enclosure and between first enclosureservices modules of successive enclosures until and including a lastenclosure, the steps comprising: detecting by a device associated with acorresponding first one of the plurality of enclosure services modulesthe data rate of incoming data from the disk array controller.
 2. Themethod of claim 1, further comprising a second channel formed in reversesequence from the disk array controller to the second enclosure servicesmodule of the last enclosure and between second enclosure servicesmodules of successive enclosures to the first enclosure.
 3. The methodof claim 1, further comprising comparing the data rate of the incomingdata with the current data rate in the enclosure services module, thedevice being in bypass mode.
 4. The method of claim 3, furthercomprising changing the data rate of the enclosure services module tothat of the data rate of the incoming data.
 5. The method of claim 4,further comprising checking the validity of the incoming data.
 6. Themethod of claim 5, if the incoming data is determined to be valid,further comprising placing the device in unbypass mode and accepting theincoming data.
 7. The method of claim 5, if the incoming data isdetermined not to be valid, further comprising maintaining the device inbypass mode and not accepting the incoming data.
 8. The method of claim2, wherein each of the plurality of enclosure services modules isdefined by an IN port and an EXPANSION port.
 9. The method of claim 2,wherein the enclosures include disk drives.
 10. The method of claim 9,wherein the disk drives are Fibre Channel disk drives.
 11. The method ofclaim 10, wherein the disk drives recognize, on the fly, that the speedhas been changed.
 12. A system for adjusting the speed of operation of achannel for communicating with disk drives in a multi ported system,comprising: a disk array controller having a first channel; and aplurality of enclosures, each having an enclosure services module fromwhich the first channel is formed in sequence from a disk arraycontroller to a first enclosure services module of a first enclosure andbetween first enclosure services modules of successive enclosures to alast enclosure, each one of the plurality of enclosure services moduleshaving a port bypass device which makes a data rate determination ofincoming data.
 13. The system of claim 12, wherein a second channel isformed in reverse sequence from the disk array controller and the secondenclosure services module of the last enclosure and between secondenclosure services modules of successive enclosures to the firstenclosure.
 14. The system of claim 13, wherein the each of the first andsecond channels is bi-directional.
 15. The system of claim 12, whereinthe enclosures include disk drives which are Fibre Channel disk drives.16. The system of claim 12, wherein the enclosure services modules eachhave a microprocessor.
 17. A system for adjusting the speed of operationof a channel for communicating with disk drives in a multi portedsystem, comprising: a disk array controller having a first channel and asecond channel; and a plurality of enclosures, each enclosure havingfirst and second enclosure services modules, a first channel beingformed in sequence from a disk array controller to a first enclosureservices module of a first enclosure and between first enclosureservices modules of successive enclosures to a last enclosure and asecond channel being formed in reverse sequence from the disk arraycontroller to a second enclosure services module of the last enclosureand between second enclosure modules of successive enclosures to thefirst enclosure, the system operating according to the method having thesteps of detecting by a device associated with a corresponding first oneof the plurality of enclosure services modules the data rate of incomingdata from the disk array controller; comparing the data rate of theincoming data with the current data rate in the enclosure servicesmodule; changing the data rate of the enclosure services module to thatof the data rate of the enclosure services module; and checking thevalidity of the incoming data.
 18. A system for passing a signal to achain of electrically connected devices having two channels, comprisinga controller device; and a plurality of subservient devices, eachsubservient device being able to determine the data rate of incomingdata, wherein the controller device is connected both in an open chainmanner to the subservient devices in a forward order and in a physicallyseparate reverse order.
 19. The system of claim 18, wherein the forwardconnection and the reverse connection define the two channels.
 20. Thesystem of claim 18, wherein the controller device is a disk arraycontroller and the subservient devices are enclosures having enclosureservices modules for disk drives.